
package TokensDelLenguaje;

import PolacaInversa.Registro;

public class Token_Ulongint extends Token_Uint{
    
    // Maximos y Minimos Valores para constantes Ulongint
    public static final long Minimo = 0;
    public static final long Maximo = 4294967295l;  // (2 exp 32) - 1

  public Token_Ulongint(){
      super(Tokens.const_ulongint);
    }
  public Token_Ulongint(Long valor){
     super(Tokens.const_ulongint);
     setLong(valor);
    }

    @Override 
    public String getCadena(){
        return "" + this.valor + "ul";
  }
  
  
  @Override
  public void setLong(Long valor) {
      
      if( Minimo <= valor && valor <= Maximo){
         this.valor = valor;
      }
    }

    @Override
    public int getTamano() {
        return 4;
    }

     @Override
   public Object clone(){
       Token_Ulongint copia = null;
       
       copia = (Token_Ulongint)super.clone();
       
       if (this.valor != null){
           copia.setLong(valor);
       }
       
       return copia;
   }

    @Override
    public String conversion(Registro r) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}
